package org.eiahe.hr.training.domain.bo;

import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ehe.common.core.validate.AddGroup;
import org.ehe.common.core.validate.EditGroup;
import org.ehe.common.mybatis.core.domain.BaseEntity;
import org.eiahe.hr.training.domain.HrTrainingMaterial;

/**
 * 培训课件业务对象 hr_training_material
 *
 * @author zhangnn
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = HrTrainingMaterial.class, reverseConvertGenerate = false)
public class HrTrainingMaterialBo extends BaseEntity {

    /**
     * 课件ID
     */
    @NotNull(message = "课件ID不能为空", groups = { EditGroup.class })
    private Long materialId;

    /**
     * 课件名称
     */
    @NotBlank(message = "课件名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String materialName;

    /**
     * 课件类型（1文档 2视频 3音频 4其他）
     */
    private String materialType;

    /**
     * 课件分类
     */
    private String materialCategory;

    /**
     * 文件地址
     */
    @NotBlank(message = "文件地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fileUrl;

    /**
     * 文件大小（字节）
     */
    private Long fileSize;

    /**
     * 文件格式
     */
    private String fileFormat;

    /**
     * 封面图片
     */
    private String coverUrl;

    /**
     * 时长（秒）
     */
    private Integer duration;

    /**
     * 可见部门ID（逗号分隔，为空表示全员可见）
     */
    private String deptIds;

    /**
     * 是否公开（0否 1是，员工手册、公司制度）
     */
    private String isPublic;

    /**
     * 状态（0停用 1正常）
     */
    private String status;

    /**
     * 排序
     */
    private Integer sortOrder;

}
